package com.framework.plm.dbs.orm.impl;

import com.framework.plm.dbs.orm.IDialect;

public class MySQLDialect implements IDialect {

	protected static final String SQL_END_DELIMITER = ";";

    public MySQLDialect() {
    }

    public String getPagedString(String sql, boolean hasOffset) {
        return (new StringBuffer(sql.length() + 20)).append(trim(sql)).append(hasOffset ? " limit ?,?" : " limit ?").append(";").toString();
    }

    public String getPagedString(String sql, int offset, int limit) {
        sql = trim(sql);
        StringBuffer sb = new StringBuffer(sql.length() + 20);
        sb.append(sql);
        if(offset > 0) {
            sb.append(" limit ").append(offset).append(',').append(limit).append(";");
        } else {
            sb.append(" limit ").append(limit).append(";");
        }
        return sb.toString();
    }

    public boolean supportsPaged() {
        return true;
    }

    private String trim(String sql) {
        sql = sql.trim();
        if(sql.endsWith(";")) {
            sql = sql.substring(0, sql.length() - 1 - ";".length());
        }
        return sql;
    }

}